package com.yami.shop.bean.app.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yami.shop.common.serializer.json.ImgJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

@Data
public class CouponDto {

    /**
     * 优惠券ID
     *
     */
    @ApiModelProperty(value = "优惠券id", required = true)
    private Long couponId;

    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺ID", required = true)
    private Long shopId;

    /**
     * 发放时间
     */
    @ApiModelProperty(value = "发放时间", required = true)
    private Date provideTime;

    /**
     * 使用时间
     */
    @ApiModelProperty(value = "使用时间", required = true)
    private Date useTime;

    /**
     * 金额满减
     */
    @ApiModelProperty(value = "金额满减", required = true)
    private Double reduceMoney;

    /**
     * 优惠券金额
     */
    @ApiModelProperty(value = "优惠券金额", required = true)
    private Double fullAmountReduce;

    /**
     * 有效期
     */
    @ApiModelProperty(value = "有效期", required = true)
    private Date effectiveDate;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", required = true)
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", required = true)
    private Date updateTime;

    /**
     * 优惠券开始时间
     */
    @ApiModelProperty(value = "优惠券开始时间", required = true)
    private String startTime;

    /**
     * 优惠券结束时间
     */
    @ApiModelProperty(value = "优惠券结束时间", required = true)
    private String endTime;

    /**
     * 优惠券类型
     */
    @ApiModelProperty(value = "优惠券类型", required = true)
    private Integer couponType;

    /**
     * 产品id
     */
    @ApiModelProperty(value = "产品id", required = true)
    private Long prodId;

    /**
     * 优惠券状态  0:正常显示    1：删除不显示
     */
    private Integer state;

    /**
     * 商品主图
     */
    @JsonSerialize(using = ImgJsonSerializer.class)
    @ApiModelProperty(value = "商品主图", required = true)
    private String pic;

    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称", required = true)
    private String prodName;

    /**
     * 优惠券使用状态
     */
    @ApiModelProperty(value = "优惠券使用", required = true)
    private Integer useState;

    /**
     * 优惠券使用ID
     *
     */
    @ApiModelProperty(value = "优惠券使用id", required = true)
    private Long recordId;

    /**
     * 优惠券种类(0:单品优惠    1：店铺优惠     2：平台优惠)
     */
    @ApiModelProperty(value = "优惠券种类", required = true)
    private Integer couponKind;

    /**
     * 优惠券名称
     */
    @ApiModelProperty(value = "优惠券名称", required = true)
    private String couponTitle;

    /**
     * 优惠券领取数量
     */
    @ApiModelProperty(value = "优惠券领取数量", required = true)
    private Integer countNumber;

    /**
     * 优惠券未使用数量
     */
    @ApiModelProperty(value = "优惠券未使用数量", required = true)
    private Integer noUse;

    /**
     * 优惠券使用数量
     */
    @ApiModelProperty(value = "优惠券使用数量", required = true)
    private Integer isUse;

    /**
     * 优惠券过期数量
     */
    @ApiModelProperty(value = "优惠券过期数量", required = true)
    private Integer expiredUse;

    /**
     * 店铺名称
     */
    private String shopName;

}
